#pragma once

//////////////////////////////////////////////////////////////////////////
//
class CBreakpoint : 
    public CComObjectRootEx<CComSingleThreadModel>,
    public IBreakpoint
{
public:
    CBreakpoint();
    virtual ~CBreakpoint();

    static HRESULT Create( IBreakpoint **ppOut );

BEGIN_COM_MAP(CBreakpoint)
    COM_INTERFACE_ENTRY_IID(IID_IBreakpoint, IBreakpoint)
END_COM_MAP()

    STDMETHOD(SetIP)(DWORD dwIP);
    STDMETHOD_(DWORD,GetIP)();
    STDMETHOD(SetLineIndex)(DWORD dwLine);
    STDMETHOD_(DWORD,GetLineIndex)();
    STDMETHOD(SetActive)(BOOL bActive);
    STDMETHOD_(BOOL,GetActive)();
    STDMETHOD(Hit)();
    STDMETHOD_(DWORD, GetHitCount)();

private:
    DWORD       m_dwLineIdx;
    BOOL        m_bActive;
    DWORD       m_dwIP;
    DWORD       m_dwHitCount;

};
